Network-based applications, such as browser-based email programs, interactive mapping services, social networking web sites, etc., typically use a combination of Dynamic HTML, JavaScript, and other Web browser technologies commonly referred to as “AJAX” to push page generation, content manipulation, and other types of execution to the client's browser. A few well known examples of these types applications include GMAIL™, LIVE MAPS™, REDFIN™, MYSPACE.COM®, NETFLIX®, etc.
Unfortunately, initial application execution must generally wait until a substantial amount of application code has been downloaded. Further, as the sophistication and feature sets of these network-based applications grow, downloading their client-side code is increasingly becoming a bottleneck in both their initial startup time and subsequent application interactions. Given the importance of performance and “instant gratification” demanded by users in the adoption of such applications, maintaining and improving the application responsiveness despite increased code size is of primary concern. Unfortunately, as applications become more complex and feature rich, the shift of application execution from a back-end server to the client often dramatically increases the amount of data that must be downloaded to the client. The result is that perceived responsiveness of the application is degraded.